From 3b721ea9c910054437201463ba13e22c108d7713 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Fri, 26 Mar 2010 16:49:48 +0100 Subject: [PATCH] Use a tree view in testgtk selection target test --- tests/testgtk.c | 52 ++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/tests/testgtk.c b/tests/testgtk.c index 3e596d125f..53ad7dc11f 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -10667,11 +10667,12 @@ create_snapshot (GtkWidget *widget) */ void -selection_test_received (GtkWidget *list, GtkSelectionData *data) +selection_test_received (GtkWidget *tree_view, + GtkSelectionData *data) { + GtkTreeModel *model; + GtkListStore *store; GdkAtom *atoms; - GtkWidget *list_item; - GList *item_list; int i, l; if (data->length < 0) @@ -10687,44 +10688,42 @@ selection_test_received (GtkWidget *list, GtkSelectionData *data) /* Clear out any current list items */ - gtk_list_clear_items (GTK_LIST(list), 0, -1); + model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)); + store = GTK_LIST_STORE (model); + gtk_list_store_clear (store); /* Add new items to list */ atoms = (GdkAtom *)data->data; - item_list = NULL; l = data->length / sizeof (GdkAtom); for (i = 0; i < l; i++) { char *name; + GtkTreeIter iter; + name = gdk_atom_name (atoms[i]); if (name != NULL) - { - list_item = gtk_list_item_new_with_label (name); - g_free (name); - } + { + gtk_list_store_insert_with_values (store, &iter, i, 0, name, -1); + g_free (name); + } else - list_item = gtk_list_item_new_with_label ("(bad atom)"); - - gtk_widget_show (list_item); - item_list = g_list_append (item_list, list_item); + gtk_list_store_insert_with_values (store, &iter, i, 0, "(bad atom)", -1); } - gtk_list_append_items (GTK_LIST (list), item_list); - return; } void -selection_test_get_targets (GtkWidget *widget, GtkWidget *list) +selection_test_get_targets (GtkWidget *widget, GtkWidget *tree_view) { static GdkAtom targets_atom = GDK_NONE; if (targets_atom == GDK_NONE) targets_atom = gdk_atom_intern ("TARGETS", FALSE); - gtk_selection_convert (list, GDK_SELECTION_PRIMARY, targets_atom, + gtk_selection_convert (tree_view, GDK_SELECTION_PRIMARY, targets_atom, GDK_CURRENT_TIME); } @@ -10735,7 +10734,10 @@ create_selection_test (GtkWidget *widget) GtkWidget *button; GtkWidget *vbox; GtkWidget *scrolled_win; - GtkWidget *list; + GtkListStore* store; + GtkWidget *tree_view; + GtkTreeViewColumn *column; + GtkCellRenderer *renderer; GtkWidget *label; if (!window) @@ -10769,10 +10771,16 @@ create_selection_test (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0); gtk_widget_set_size_request (scrolled_win, 100, 200); - list = gtk_list_new (); - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_win), list); + store = gtk_list_store_new (1, G_TYPE_STRING); + tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); + gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_win), tree_view); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes ("Target", renderer, + "text", 0, NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column); - g_signal_connect (list, "selection_received", + g_signal_connect (tree_view, "selection_received", G_CALLBACK (selection_test_received), NULL); /* .. And create some buttons */ @@ -10781,7 +10789,7 @@ create_selection_test (GtkWidget *widget) button, TRUE, TRUE, 0); g_signal_connect (button, "clicked", - G_CALLBACK (selection_test_get_targets), list); + G_CALLBACK (selection_test_get_targets), tree_view); button = gtk_button_new_with_label ("Quit"); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area), -- 2.30.2